package com.water.app;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

/**
 * 默认单例的bean是在项目启动时创建的，创建完毕后会将该bean存入ioc容器中
 * 加上@Lazy后会延迟bean的初始化，延迟到第一次使用的时候，再来创建该bean
 * 如果使用@Scope("prototype")注解将该bean改成多例的，每一次使用都会重新创建一个新的对象
 * 无状态的bean(不保存其他数据，只有方法的类)，定义为单例的，即@Scope("Singleton")，或者默认也这个
 * 有状态的bean(保存其他数据，有可变属性的类)，定义为多例的，即@Scope("prototype")
 */
@ServletComponentScan//加上，开启Servlet组件支持
@SpringBootApplication
@EnableAspectJAutoProxy(exposeProxy = true) // 开启代理暴露，允许 AopContext 获取代理
public class AppApplication {

    public static void main(String[] args) {
        SpringApplication.run(AppApplication.class, args);
    }

}
